{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## _*LiH dissociation curve using NumPyMinimumEigensolver*_\n",
    "\n",
    "This notebook demonstrates using Qiskit Chemistry to plot graphs of the ground state energy and dipole moments of a Lithium Hydride (LiH) molecule over a range of inter-atomic distances.\n",
    "\n",
    "This notebook has been written to use the PYSCF chemistry driver.\n",
    "\n",
    "Note: In order to allow this to run reasonably quickly it takes advantage of the ability to freeze core orbitals to reduce the size of the problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "from qiskit_nature.second_q.drivers import PySCFDriver\n",
    "from qiskit_nature.second_q.transformers import FreezeCoreTransformer\n",
    "from qiskit_nature.second_q.formats import MoleculeInfo\n",
    "from qiskit_nature.second_q.mappers import ParityMapper\n",
    "from qiskit_nature.second_q.algorithms import GroundStateEigensolver\n",
    "\n",
    "from qiskit_algorithms import NumPyMinimumEigensolver\n",
    "\n",
    "from qiskit_algorithms.optimizers import SLSQP\n",
    "\n",
    "from qiskit.circuit.library import TwoLocal\n",
    "from qiskit_algorithms import VQE\n",
    "from qiskit.primitives import Estimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "algorithms = ['NumPyMinimumEigensolver', 'VQE']\n",
    "\n",
    "distances  = [x * 0.1  for x in range(6, 20)]\n",
    "distances += [x * 0.25 for x in range(8, 17)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_energies(algorithm, distances):\n",
    "    print(f'{algorithm}, processing step __', end='')\n",
    "\n",
    "    energies = []\n",
    "    hf_energies = []\n",
    "    estimator = Estimator()\n",
    "\n",
    "    for i, d in enumerate(distances):\n",
    "        print('\\b\\b{:2d}'.format(i), end='', flush=True)\n",
    "\n",
    "        info = MoleculeInfo([\"Li\", \"H\"], [(0.0, 0.0, 0.0), (0.0, 0.0, d)])\n",
    "        driver = PySCFDriver.from_molecule(info, basis=\"sto3g\")\n",
    "        molecule = driver.run()\n",
    "        transformer = FreezeCoreTransformer()\n",
    "        molecule = transformer.transform(molecule)\n",
    "        hamiltonian = molecule.hamiltonian.second_q_op()\n",
    "        mapper = ParityMapper(num_particles=molecule.num_particles)\n",
    "        tapered_mapper = molecule.get_tapered_mapper(mapper)\n",
    "        qubit_op = tapered_mapper.map(hamiltonian)\n",
    "\n",
    "        if algorithm == 'NumPyMinimumEigensolver':\n",
    "            algo = NumPyMinimumEigensolver()\n",
    "            algo.filter_criterion = molecule.get_default_filter_criterion()\n",
    "            solver = GroundStateEigensolver(mapper, algo)\n",
    "            result = solver.solve(molecule)\n",
    "            hf_energies.append(result.hartree_fock_energy)\n",
    "            energies.append(result.total_energies[0])\n",
    "\n",
    "        elif algorithm == 'VQE':\n",
    "            optimizer = SLSQP(maxiter=10000, ftol=1e-9)\n",
    "            ansatz = TwoLocal(qubit_op.num_qubits, ['ry', 'rz'], 'cz', 'linear', reps=2)\n",
    "            vqe = VQE(estimator, ansatz, optimizer)\n",
    "            vqe.initial_point = [0] * ansatz.num_parameters\n",
    "            algo = GroundStateEigensolver(tapered_mapper, vqe)\n",
    "            result = algo.solve(molecule)\n",
    "            energies.append(result.total_energies[0])\n",
    "\n",
    "    print(' --- complete')\n",
    "    return hf_energies, energies\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "np.float64(-7.86519934592008)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimator = Estimator()\n",
    "info = MoleculeInfo([\"Li\", \"H\"], [(0.0, 0.0, 0.0), (0.0, 0.0, 1.5)])\n",
    "driver = PySCFDriver.from_molecule(info, basis=\"sto3g\")\n",
    "molecule = driver.run()\n",
    "transformer = FreezeCoreTransformer()\n",
    "molecule = transformer.transform(molecule)\n",
    "hamiltonian = molecule.hamiltonian.second_q_op()\n",
    "mapper = ParityMapper(num_particles=molecule.num_particles)\n",
    "tapered_mapper = molecule.get_tapered_mapper(mapper)\n",
    "qubit_op = tapered_mapper.map(hamiltonian)\n",
    "optimizer = SLSQP(maxiter=1000, ftol=1e-6)\n",
    "ansatz = TwoLocal(qubit_op.num_qubits, ['ry', 'rz'], 'cz', 'linear', reps=2)\n",
    "vqe = VQE(estimator, ansatz, optimizer)\n",
    "vqe.initial_point = [0] * ansatz.num_parameters\n",
    "algorithm = GroundStateEigensolver(tapered_mapper, vqe)\n",
    "result = algorithm.solve(molecule)\n",
    "electronic_structure_result.total_energies[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumPyMinimumEigensolver, processing step 22 --- complete\n"
     ]
    }
   ],
   "source": [
    "hf_energies, npme_energies = compute_energies(algorithms[0], distances)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VQE, processing step 22 --- complete\n"
     ]
    }
   ],
   "source": [
    "_, vqe_energies = compute_energies(algorithms[1], distances) # this takes a while"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "HF bond distance: 1.5 A\n",
      "VQE bond distance: 1.5 A\n",
      "NumpyMinimumEigensolver bond distance: 1.5 A\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(f'HF bond distance: {distances[hf_energies.index(min(hf_energies))]} A\\nVQE bond distance: {distances[vqe_energies.index(min(vqe_energies))]} A\\nNumpyMinimumEigensolver bond distance: {distances[npme_energies.index(min(npme_energies))]} A\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fd0034f6080>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAHHCAYAAABTMjf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACRLElEQVR4nOzdeVxU9f7H8dfMsO/7DgIq4L5bkruWZlq2qGVlarbcW95s11verG7Zfvu1b4ZZWdniUmlmGu4L7iuoCCqIgCD7Nsyc3x+DIyOLoMDMwOfZYx4wZ5vPHCd48z3f8/2qFEVREEIIIYRog9TmLkAIIYQQwlwkCAkhhBCizZIgJIQQQog2S4KQEEIIIdosCUJCCCGEaLMkCAkhhBCizZIgJIQQQog2S4KQEEIIIdosCUJCCCGEaLMkCAlhQVJTU1GpVCxcuNDcpVidhQsXolKpSE1NNXcpQggrIkFIiBZy4Rf1zp07G7XfvHnzUKlUnDt3rtb14eHhjB07tsHH+/XXXxk3bhz+/v7Y2dnh5eXF4MGDefvttykoKGhUbdZq06ZN3HjjjQQHB+Pg4EBYWBjjxo1j8eLFxm1KSkqYN28e8fHxV/w6W7ZsYd68eeTl5V190dVc+CzV9di2bVuTvp4QrZmNuQsQQlzUrl07SktLsbW1bfJj6/V67r//fhYuXEi3bt345z//SWhoKIWFhWzdupXnn3+elStXsnbt2iZ/bUvy448/MmnSJHr27Mljjz2Gp6cnKSkpbNiwgc8//5zJkycDhiD04osvAjB06NAreq0tW7bw4osvMnXqVDw8PJroHVz00ksvERERUWN5hw4dmvy1hGitJAgJYUFUKhUODg7Ncuw33niDhQsX8vjjj/P222+jUqmM6x577DEyMjJYtGhRvcfQ6/VUVFQ0W40tYd68eXTu3Jlt27ZhZ2dnsi4rK8tMVV2ZG2+8kb59+5q7DIqLi3F2djZ3GUJcEbk0JoQFaa4+QiUlJbz++ut06dKFN9980yQEXRAYGMizzz5rskylUvHoo4/y7bff0qVLF+zt7fnjjz8A2LNnDzfeeCNubm64uLgwYsSIGpdkLlzWu1Rt/XkuXOLbtGkT/fv3x8HBgcjIyFrD2aFDhxg+fDiOjo6EhITw3//+F71e36BzkZycTL9+/WqEIAA/Pz/A8O/g6+sLwIsvvmi85DRv3jwA9u/fz9SpU4mMjMTBwYGAgACmT59OTk6OyXt/+umnAYiIiDAeo/p7/uabb+jTpw+Ojo54eXlx5513cvr06Qa9j4a48Hl66623+Oyzz2jfvj329vb069ePhISEGtsnJiZyxx134OXlhYODA3379mXFihUm21z4t1u/fj3//Oc/8fPzIyQkxLj+ww8/JDIyEkdHR/r378/GjRsZOnSosVWtqKgIZ2dnHnvssRqvn5aWhkajYf78+U12DoS4HGkREsJK5Obm1rq8IQFg06ZN5OXl8dRTT6HRaBr1uuvWrWPJkiU8+uij+Pj4EB4ezqFDhxg0aBBubm4888wz2Nra8umnnzJ06FDWr1/PNddc06jXuOD48ePccccd3H///dx33318+eWXTJ06lT59+tClSxcAzp49y7Bhw6isrGT27Nk4Ozvz2Wef4ejo2KDXaNeuHWvXriUtLc3kF3h1vr6+fPzxx/zjH//g1ltv5bbbbgOge/fuAKxZs4YTJ04wbdo0AgICOHToEJ999hmHDh1i27ZtqFQqbrvtNo4ePcp3333H//73P3x8fIzHBnjllVeYO3cuEydOZMaMGWRnZ/P+++8zePBg9uzZ06BLafn5+TX6jqlUKry9vU2WLV68mMLCQh566CFUKhVvvPEGt912GydOnDBehj106BDXXXcdwcHBxvO6ZMkSxo8fz88//8ytt95qcsx//vOf+Pr68p///Ifi4mIAPv74Yx599FEGDRrE448/TmpqKuPHj8fT09N4rl1cXLj11lv54YcfeOedd0w+j9999x2KonD33Xdf9r0L0WQUIUSLiIuLUwAlISGhzm1SUlIUQImLizMue+GFFxSg3sdNN91U72v/3//9nwIoy5YtM1leWVmpZGdnmzz0er1xPaCo1Wrl0KFDJvuNHz9esbOzU5KTk43Lzpw5o7i6uiqDBw+uUXtd5yIlJcW4rF27dgqgbNiwwbgsKytLsbe3V5588knjslmzZimAsn37dpPt3N3daxyzNgsWLFAAxc7OThk2bJgyd+5cZePGjYpOpzPZLjs7WwGUF154ocYxSkpKaiz77rvvatT/5ptv1lpTamqqotFolFdeecVk+YEDBxQbG5sayy914fzV9rC3tzdud+Hz5O3treTm5hqXL1++XAGUX3/91bhsxIgRSrdu3ZSysjLjMr1er8TGxiodO3as8doDBw5UKisrjcvLy8sVb29vpV+/fopWqzUuX7hwoQIoQ4YMMS5bvXq1AiirVq0yeV/du3c32U6IliCXxoSwEj///DNr1qyp8fD397/svhfuBnNxcTFZfuDAAXx9fU0e1S/vAAwZMoTOnTsbn+t0Ov7880/Gjx9PZGSkcXlgYCCTJ09m06ZNV3z3WefOnRk0aJDxua+vL9HR0Zw4ccK4bOXKlVx77bX079/fZLuGtiJMnz6dP/74g6FDh7Jp0yZefvllBg0aRMeOHdmyZUuDjlG99amsrIxz585x7bXXArB79+7L7v/LL7+g1+uZOHEi586dMz4CAgLo2LEjf//9d4Pq+PDDD2t8HlatWlVju0mTJuHp6Wl8fuEcXzivubm5rFu3jokTJ1JYWGisJycnh1GjRnHs2DHS09NNjvnAAw+YtObs3LmTnJwcHnjgAWxsLl5suPvuu01eG2DkyJEEBQXx7bffGpcdPHiQ/fv3c8899zTovQvRVOTSmBBWYvDgwcbLK9U1pOOyq6srYOifUV2HDh1Ys2YNAIsWLeLrr7+use+ldyVlZ2dTUlJCdHR0jW07deqEXq/n9OnTxktZjREWFlZjmaenJ+fPnzc+P3nyZK2X3mqrpy6jRo1i1KhRlJSUsGvXLn744Qc++eQTxo4dS2JiorGvUF1yc3N58cUX+f7772t0sM7Pz7/s6x87dgxFUejYsWOt6xt612D//v0b1Fn60vN6IZhcOK/Hjx9HURTmzp3L3Llzaz1GVlYWwcHBxueXfi5OnjwJ1LxjzcbGhvDwcJNlarWau+++m48//piSkhKcnJz49ttvcXBwYMKECZd9P0I0JQlCQrQBMTExgOGv7ltuucW43MXFhZEjRwKGfkS1aWjfm9rU1lEaDK1Ktamr/5KiKFdcQ32cnJwYNGgQgwYNwsfHhxdffJFVq1Zx33331bvfxIkT2bJlC08//TQ9e/bExcUFvV7P6NGjG9RnS6/Xo1KpWLVqVa3v+dKWu6t1ufN6oeannnqKUaNG1brtpQHnaj4XAFOmTOHNN99k2bJl3HXXXSxevJixY8fi7u5+VccVorEkCAnRBgwaNAh3d3e+//575syZg1p95VfFfX19cXJyIikpqca6xMRE1Go1oaGhwMWWh7y8PJPOvxdaD65Eu3btOHbsWI3ltdXTGBdaVjIyMoC6Q9z58+dZu3YtL774Iv/5z3+My2urqa5jtG/fHkVRiIiIICoq6qrqbgoXLnHa2toag3FjtWvXDjC0Lg0bNsy4vLKyktTUVGNH8wu6du1Kr169+PbbbwkJCeHUqVO8//77V/gOhLhy0kdIiDbAycmJZ555hoMHDzJ79uxaW1ga2uqi0Wi44YYbWL58ucmt4JmZmSxevJiBAwfi5uYGGH7hA2zYsMG4XXFxMV999dUVv5cxY8awbds2duzYYVyWnZ1t0t+kPnUNGLly5Urg4iU2JycngBqjQl9oXbn0fL377rs1jnlhbJ1Lj3Hbbbeh0Wh48cUXaxxHUZQa/bSam5+fH0OHDuXTTz81BsHqsrOzL3uMvn374u3tzeeff05lZaVx+bfffmtyabO6e++9lz///JN3330Xb29vbrzxxit/E0JcIWkREqKFffnll8axeKqrbVyVpjR79myOHDnCm2++yZ9//sntt99OSEgI58+fZ/fu3fz444/4+fk1qM/Rf//7X9asWcPAgQP55z//iY2NDZ9++inl5eW88cYbxu1uuOEGwsLCuP/++3n66afRaDR8+eWX+Pr6curUqSt6H8888wxff/01o0eP5rHHHjPePt+uXTv2799/2f1vueUWIiIiGDduHO3bt6e4uJi//vqLX3/9lX79+jFu3DjAcOmnc+fO/PDDD0RFReHl5UXXrl3p2rUrgwcP5o033kCr1RIcHMyff/5JSkpKjdfq06cPAM899xx33nkntra2xtf973//y5w5c4y3mLu6upKSksLSpUt58MEHeeqppy77XlatWkViYmKN5bGxsSYd2Rviww8/ZODAgXTr1o0HHniAyMhIMjMz2bp1K2lpaezbt6/e/e3s7Jg3bx4zZ85k+PDhTJw4kdTUVBYuXEj79u1rbR2bPHkyzzzzDEuXLuUf//hHs4yoLsRlmet2NSHamvpueQaU06dP13v7fHZ2dq3Hbdeu3WVvn69u6dKlypgxYxRfX1/FxsZG8fDwUAYOHKi8+eabSl5ensm2gPLII4/Uepzdu3cro0aNUlxcXBQnJydl2LBhypYtW2pst2vXLuWaa65R7OzslLCwMOWdd96p8/b52t7HkCFDatxSvX//fmXIkCGKg4ODEhwcrLz88svG2+Ivd/v8d999p9x5551K+/btFUdHR8XBwUHp3Lmz8txzzykFBQUm227ZskXp06eP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YR566KF6X8PR0RGAiooKJkyYgE6nY8WKFcb1WVlZ/P7770yfPt1kv+nTp7NkyRJKSkoAwyWz0aNH4+/vf9m6//77b5KTk/n777/56quvWLhwIQsXLqx3n5dffpkpU6awd+9eYmJimDx5Mg899BBz5sxh586dKIrCo48+etnXvtRXX32Fj48PO3bsYObMmfzjH/9gwoQJxMbGsnv3bm644Qbuvfde4/u8Eq+//jrffvstcXFxbN68mYKCApYtW2ayzfz581m0aBGffPIJhw4d4vHHH+eee+5h/fr1Jts999xzvP322+zcuRMbGxuTf5e7776bkJAQEhIS2LVrF7NnzzaGs127djFx4kTuvPNODhw4wLx585g7d26d5/3uu+/m119/paioyLhs9erVlJSUcOuttzaq5tmzZ/Paa69x5MgRunfvfqWnsV42zXJU0TAeodgBPpU6ztloOJiVSp/QsMvuJoRoQtoSeDXIPK/97zNg59zo3W699VZ69uzJCy+8wIIFC67opb28vHjvvfdQq9VER0fzxhtvUFJSwr///W8A5syZw2uvvcamTZu48847a+xfUlLC888/j0ajYciQITg6OjJ58mTi4uKYMGECAN988w1hYWEmLSkAvXr1IjIykp9++ol7772XhQsX8s477zToEpunpycffPABGo2GmJgYbrrpJtauXcsDDzxQ5z7Tpk1j4sSJADz77LMMGDCAuXPnMmrUKAAee+wxpk2b1qDzVl2PHj14/vnngYvny8fHx1jLf/7zHz7++GP279/Ptddea9wvNjYWtdq0HaJ6aKju/fffZ86cOcYA8cEHH7By5Urj+vLycl599VX++usvBgwYAEBkZCSbNm3i008/ZciQIcZtX3nlFePz2bNnc9NNN1FWVoaDgwOnTp3i6aefJiYmBoCOHTsa93vnnXcYMWIEc+fOBSAqKorDhw/z5ptvMnXq1Bo1jxo1CmdnZ5YuXWpsDVy8eDE333wzrq6ujar5pZde4vrrr6/9H6CJSIuQObkGgUpjvDx2TMYSEkI00Ouvv85XX33FkSNHrmj/Ll26mPwy9vf3p1u3bsbnGo0Gb29vsrJMb+S46667cHFxwdXVlZ9//pkFCxYY/1J/4IEH+PPPP0lPNwwHsnDhQmMH70tNnz6duLg41q9fT3FxMWPGjGlw3RqNxvg8MDCwRo2Xqt6S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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.plot(distances, hf_energies, label='HF')\n",
    "pylab.plot(distances, npme_energies, label=algorithms[0])\n",
    "pylab.plot(distances, vqe_energies, label=algorithms[1])\n",
    "pylab.xlabel('Interatomic distance [Angstrom]')\n",
    "pylab.ylabel('Energy [Ha]')\n",
    "pylab.title('LiH Ground State Energy')\n",
    "pylab.legend(loc='upper right')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
